package ru.gosoplata.service 
{
	import flash.events.StatusEvent;
	import flash.net.LocalConnection;
	import ru.gosoplata.model.TmpModel;
	/**
	 * ...
	 * @author 
	 */
	public class LocalConectionService 
	{
		private var _receivingLC:LocalConnection;
		private var _sendingLC:LocalConnection;
		
		//public function get client () : Object{}
		public function set client (obj:Object) : void {
			_receivingLC.client = obj;
		}
		
		public function LocalConectionService() 
		{
			_receivingLC = new LocalConnection();
			
			_sendingLC = new LocalConnection();
			_sendingLC.addEventListener(StatusEvent.STATUS, onEmmiterStatus);//+
			
			//connect();
			try {
				_receivingLC.connect("fromExe");//TODO: такое ощющение что когда происходит событие Event.ACTIVATE в Мэин как то частично выполняется конструктор - вообще какой то злой класс (LocalConnection)
			}catch (e:Error) {
				TmpModel.debugOutput.add("LocalConectionService connect error :"+e);
			}
		}
		
		public function send(mess:String):void 
		{		
			_sendingLC.send("toExe", "swfSays", mess);
		}
		
		public function destroy():void 
		{
			close();
			if (!_receivingLC) return;
			_sendingLC.removeEventListener(StatusEvent.STATUS, onEmmiterStatus);//+
			//_receivingLC.client = null;
			//_receivingLC = null;
			//_sendingLC = null;
		}
		
		private function close():void 
		{
			try {
				_receivingLC.close();
			}catch (e:Error) {
				TmpModel.debugOutput.add("LocalConectionService close error :"+e);
			}
		}
		
		//private function connect():void 
		//{
			//close();
			//try {
				//_receivingLC.connect("fromExe");//TODO: такое ощющение что когда происходит событие Event.ACTIVATE в Мэин как то частично выполняется конструктор - вообще какой то злой класс (LocalConnection)
			//}catch (e:Error) {
				//TmpModel.debugOutput.add("LocalConectionService connect error :"+e);
			//}
		//}
		
		private function onEmmiterStatus(e:StatusEvent):void //+
		{
			//TODO: чаще возращает ошибку, хотя все доходит!
			//TmpModel.debugOutput.add("LocalConectionService onEmmiterStatus : "+e.toString());
		}
		
	}

}